// pages/personalInfo/personalInfo.js
const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userPhoto: "", // 照片
    resultPhoto: "", // 最终要传到后台的照片
    nickName: "", // 昵称
    birthday: "", // 生日
    personalIntro: "", // 个人介绍
    textNum: 0, // 字数
    btnShow: true,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      nickName: app.globalData.userInfo.nickName
    });
    if(options.type === "edit"){
      this.getUserInfo();
      this.setData({
        btnShow: false
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    if (app.globalData.uploadImgUrl !== ""){
      this.setData({
        userPhoto: app.globalData.uploadImgUrl
      });
      this.uploadImg(app.globalData.uploadImgUrl);
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

  // 选择生日
  chooseDate(e){
    this.setData({
      birthday: e.detail.value
    })
  },

  // 个人介绍
  fillIntro(e){
    this.setData({
      textNum: e.detail.cursor
    })
    if (e.detail.cursor  > 30){
      app.showError("字数不能超过30个");
    }else{
      this.setData({
        personalIntro: e.detail.value,
      })
    }
  },

  // 上传照片
  uploadPhoto(){
    app.globalData.uploadType = "personal";
    wx.navigateTo({
      url: '../cutInside/cutInside',
    })
  },

  // upload上传图片
  uploadImg(imgUlr) {
    wx.showLoading({
      mask: true,
      title: '上传中',
    })
    wx.uploadFile({
      url: app.globalData.baseUrl + '/data/updateImg', 
      filePath: imgUlr,
      name: 'file',
      formData: {
        "photo": imgUlr
      },
      success: res => {
        console.log(res);
        if (res.data) {
          this.setData({
            resultPhoto: res.data
          })
          wx.hideLoading();
        }
      },
      fail: res => {
        console.log(res);
      }
    })
  },

  // 开始打招呼
  goChat(){
    if(this.data.resultPhoto === ""){
      app.showError("请上传照片")
    }else if(this.data.birthday === ""){
      app.showError("请选择生日")
    }else if(this.data.personalIntro === ""){
      app.showError("请填写个人介绍")
    }else{
      this.submitInfo();
    }
  },

  // 提交
  submitInfo(){
    wx.request({
      url: app.globalData.baseUrl + '/data/perfectPerson',
      header:{
        unicorn: app.globalData.token
      },  
      data:{
        img: this.data.resultPhoto,
        birthday: this.data.birthday,
        introduce: this.data.personalIntro
      },
      success: res =>{
        if(res.data && res.data === true){
          if (this.data.btnShow){
            wx.navigateBack({
              url: '../chat/chat',
            })
          }else{
            wx.navigateBack({
              url: '../userInfo/userInfo',
            })
          }
        }else{
          app.showError("信息提交失败");
        }
      },
      fail: res =>{
        console.log(res)
        app.showError("服务器错误");
      }
    })
  },

  // 获取当前用户资料
  getUserInfo() {
    wx.request({
      url: app.globalData.baseUrl + '/data/getUserByToken',
      header: {
        unicorn: app.globalData.token
      },
      success: res => {
        console.log(res)
        if (res.data) {
          var year = res.data.birthday === '' || res.data.birthday === null ? '' : res.data.birthday.split(" ")[0];
          var month = year !== '' ? year.split("-")[1] : '';
          var day = year !== '' ? year.split("-")[2] : '';
          this.setData({
            userPhoto: res.data.photo_url, // 照片
            resultPhoto: res.data.photo_url, // 最终要传到后台的照片
            nickName: res.data.name, // 昵称
            birthday: res.data.birthday, // 生日
            personalIntro: res.data.introduce, // 个人介绍
            textNum: res.data.introduce.length, // 字数
          })
        }
      },
      fail: res => {
        console.log(res);
        app.showError("服务器错误");
      }
    })
  },

  


  
})